const nodemailer = require( "nodemailer" );

const tools = require( './utils.tools' )
// 创建Nodemailer传输器 SMTP 或者 其他 运输机制
 let transporter = nodemailer.createTransport( {
     host: 'smtp.163.com',
     port: 465,
     secure: true,
     auth: {
         user: 'limin164@163.com',
         pass: 'CVCSRQEQHFEITWCY'
     }
 } )
/**
 * 邮箱通知
 *
 * @param  {Object}  pm 对方信息
 */
exports.noticeMessage= ( pm ) => {
    return new Promise( ( resolve, reject ) => {
        
        // 定义transport对象并发送邮件
        transporter.sendMail( {
            from: `limin164@163.com`, // 发送方邮箱的账号
            to: `limin164@163.com`, // 邮箱接受者的账号
            subject: "留言板通知", // Subject line
            html: `
        <p style="text-indent: 2em;">${pm.content}</p><br/></br>
        <p style="text-indent: 2em;">留言邮箱：${pm.email}</p>`,
        }, ( error, info ) => {
            if ( error ) {
                reject( error )
            }
            resolve( info )
        } );
    } )
}
/**
 * 邮箱通知
 *
 * @param  {Object}  pm 对方信息
 */
exports.noticeMailer = ( pm ) => {
    return new Promise( ( resolve, reject ) => {
        // 定义transport对象并发送邮件
        transporter.sendMail( {
            from: `limin164@163.com`, // 发送方邮箱的账号
            to: `limin164@163.com`, // 邮箱接受者的账号
            subject: "留言通知", // Subject line
            html: `
        <p style="text-indent: 2em;">${pm.content}</p><br/></br>
        <p style="text-indent: 2em;">尽快回复，回复邮箱：${pm.notice_email}</p>
        <p style="text-indent: 2em;">或者去博客后台管理：<a href="http://admin.limin.run" target="_blank"> admin-blog </a>回复</p>`,
        }, ( error, info ) => {
            if ( error ) {
                reject( error )
            }
            resolve( info )
        } );
    } )
}
/**
 * 邮箱发送
 *
 * @param  {Object}  pm 对方信息
 */
exports.sendMailer = (pm) => {
    return new Promise((resolve, reject) => {
        let subject = ""
        let html = ""
        let messageTime = tools.timestampToTime( pm.createdAt, 'YMDHM' )
        switch ( pm.type ) { 
            case 1: { 
                subject = "李敏个人博客留言回复"
                html = `<p style="text-indent: 2em;">您好!${pm.email}</p>
                        <p style = "text-indent: 2em;"> 您${messageTime}在<a href="http://blog.limin.run" target="_blank"> limin-Blog </a>上的留言：${pm.content}</p>`
                break
            }
            case 2: {
                subject = "李敏个人博客(小程序)留言回复"
                html = `<p style="text-indent: 2em;">您好！ ${pm.email} </p>
        <p style="text-indent: 2em;"> 您 ${messageTime}在 limin-Blog 小程序上的留言：${pm.content}</p>`
                break
            }
            case 3: {
                subject = "李敏个人博客(H5)留言回复"
                html = `<p style="text-indent: 2em;">您好！"${pm.email}" </p>
        <p style = "text-indent: 2em;"> 您 "${messageTime}"在 <a href="http://mobile.limin.run" target="_blank"> limin-Blog(H5) </a>上的留言：${pm.content}</p>`
                break
            }
            case 4: {
                subject = "李敏个人博客(APP)留言回复"
                 html = `<p style="text-indent: 2em;">您好！ "${pm.email}" </p>
        <p style="text-indent: 2em;"> 您 "${messageTime}"在李敏个人博客APP上的留言：${pm.content}</p>`
    
                break
            }
        }
        html += `<p>博主已收到🎈 感谢您的支持！ </p>
        <p>✨现在正式给您回复：</p>
        <p style="text-indent: 2em;">${pm.replyContent}</p><br/></br>
        <p style="text-align: center;">再次感谢您的支持！祝您工作顺利，心想事成🎉🎉🎉</p>`
        // 定义transport对象并发送邮件
        transporter.sendMail({
            from: `limin164@163.com`, // 发送方邮箱的账号
            to: pm.email, // 邮箱接受者的账号
            subject: subject, // Subject line
            html: html,
        }, ( error, info ) => {
            if (error) {
                reject(error)
            }
            resolve(info)
        });
    })
}
